package ajaxjs.data.service;

import java.lang.reflect.Field;

import ajaxjs.data.entry.Entry;
//import ajaxjs.sql.DAO;

public class WriterService {
	private final static String insertSql = "INSERT INTO {tableName} ({columns}) VALUES ({values})";
	public Entry pojo = null;
	
	// 只有 方法 才可以获取当前实例的
	public Entry getPojo(){
		return this.pojo;
	}
	
	@SuppressWarnings("unused")
	public String create(String tableName){
		if(getPojo() == null){
			throw new NullPointerException("POJO未准备好");
		}
		
	    Class<?> clazz = getPojo().getClass();
	    
	    String fieldsStr = "";
	    StringBuilder values = new StringBuilder();
	   
	    for (Field f : clazz.getDeclaredFields()) {
	    	String field = f.getName();
//			if(ingoreSetterGetter.test(field))continue;
//			String value = request.getParameter(field);
			
			System.out.println(field + "=======");
			
//			if (value != null){
//				fieldsStr += " " + field + ",";
//				value = pojo[field].type(value);
//				value = json2sql(value);
//				if(value && typeof value == 'string')value =trim(value);
//				values.append(" " + value + ",'";
//			}
		}
		
//		var now = json2sql(new Date);
//
//		fields += ' createDate, updateDate ';
//		values += ' ' + now + ', ' + now + ' ';
		
		String createSql;
		createSql = insertSql.replace("{tableName}", tableName);
//		createSql = createSql.replace("{columns}", fields + ",belongsTo");
//		createSql = createSql.replace("{values}", values + ",'{0}'".replace("{0}", parentTableName));
			
		return createSql;
	}
	
//	var sql = "INSERT INTO {tableName} ({columns}) VALUES ({values})";
//	var insertSql = "INSERT INTO {tableName} ({columns}) VALUES ({values})";
//
//	function trim(str){
//		return str.replace(/\n[\s| ]*\r/, '').replace(/^\t*|\t*$/, '');
//	}
	
////	(get|set)
//	var ingoreSetterGetter = /^set\w+/, isGetter = /^get\w+/ ;
//	this.update = function(pojo, id){
//		var sql = "UPDATE {tableName} SET {pairs} WHERE id = {id}";
//		var pairs = "", fields = '', values = '';
//		var params = fixPut();
//		
//		for(var field in pojo){
//			if(ingoreSetterGetter.test(field))continue;
//			// 可从两处地方注入 value，一个是 Request hash，另外一个是 getXXX() 有返回值。getXXX() 有较高优先级
//			var value = params[field], isGoingToWrite = false;
//			
//			if (value != null){
//				isGoingToWrite = true;
//			}
//				
//			if(isGetter.test(field) && pojo[field]()){
//				isGoingToWrite = true; // 保证可写入的
//				value = pojo[field]();
//				field = field.replace('get', '').toLowerCase();
//				
//				if(pojo[field] && pojo[field].type){
//					value = pojo[field].type(value);
//				}else{
//					// 采用类型推断
//					if(value == String(Number(value))) value = Number(v);
//					
//				}
//			}
//			
//			if(isGoingToWrite){
//				// 有重复
//				if(pojo[field] && pojo[field].type){
//					value = pojo[field].type(value);
//				}else{
//					if(value == String(Number(value))) value = Number(v);
//				}
//				
//				value = json2sql(value);
//				if(value && typeof value == 'string')value = trim(value);
//				pairs += ' ' + field + ' = ' + value + ',';
//			}
//		}
//		
//		var now = json2sql(new Date);
//
//		pairs += ' updateDate =' + now;
//
//		return sql.format({
//			tableName : this.getTableName(),
//			pairs : pairs,
//			id : id
//		});
//	}
	
	
	/**
	 * 输入 Java 数据类型，返回 SQL 的类型。
	 * @private
	 * @param {Mixed}
	 * @return {Mixed}
	 */
	@SuppressWarnings("unused")
	private String json2sql(Object val){
//		if(typeof val == 'boolean'){
//			return val == true ? 1 : 0;
//		}else if(typeof val == 'number'){
//			return Number(val);
//		}else if(typeof val == 'string'){
//			return "'" + zhuanyi(val) + "'";
//		}else if(val.constructor == Date){
//			return "'" + val.format('y-MM-dd hh:mm:ss') + "'";
//		}
		
		return null;
		
	};
}
